#include "../head.h"

// typedef void (*sighandler_t)(int);m 
// SIG_IGN忽略   SIG_DFL默认

// 捕捉信号监听信号 signum信号值  handler回调函数
// sighandler_t signal(int signum, sighandler_t handler);

void sighandler1(int arg)
{
    printf("捕捉到信号 arg:%d\n", arg);
}

int main()
{

    printf("main");

    pid_t pid = fork();

    if (pid == 0)
    {
        // 捕捉信号 执行回调函数
        signal(SIGINT, sighandler1);

        while (1)
        {
            printf("child apple  pid=%d  ppid=%d\n", getpid(), getppid());
            sleep(1);
        }
        
    }
    
    if (pid > 0)
    {
        sleep(3);
        kill(pid, SIGINT);

        sleep(3);
        kill(pid, SIGKILL);

    
        int status;
        wait(&status);
        printf("%d  %d %d %d\n", WIFEXITED(status), WEXITSTATUS(status), WIFSIGNALED(status), WTERMSIG(status));
        
    }
    



}
